(deftemplate intrebare
        (slot stringIntrebare)
        (slot raspuns)
)
(deftemplate degustareVin
        (multislot meniu)
        (slot vin)
    
)
(assert (intrebare (stringIntrebare nil)(raspuns nil)))
(printout t  crlf "     >>> DEGUSTARE DE VIN <<< " crlf  )
(printout t  crlf "     Meniul consta din : " crlf  )

(assert (degustareVin (meniu Friptura de vin in sange)(vin nil)))
(assert (degustareVin (meniu Carne de peste)(vin nil)))
(assert (degustareVin (meniu Carne de porc)(vin nil)))
(assert (degustareVin (meniu Branzeturi usoare)(vin nil)))
(assert (degustareVin (meniu Carne de pui)(vin nil)))
(assert (degustareVin (meniu Carne alba)(vin nil)))
(assert (degustareVin (meniu Fructe de mare)(vin nil)))
(assert (degustareVin (meniu Carne de pasare)(vin nil)))

(printout t "     1.-Friptura de vin in sange" crlf)
(printout t "     2.-Carne de peste" crlf)
(printout t "     3.-Carne de porc" crlf)
(printout t "     4.-Branzeturi usoare" crlf)
(printout t "     5.-Carne de pui" crlf)
(printout t "     6.-Carne alba" crlf)
(printout t "     7.-Fructe de mare" crlf)
(printout t "     8.-Carne de pasare" crlf crlf )


(defrule q1
        (intrebare (stringIntrebare nil)(raspuns nil))
        =>
        (printout t "Ce doriti sa serviti?" crlf)
        (bind ?r (read))                                       ;;bind - citeste d la tastatura si punbe in variabila r
        (assert (intrebare (stringIntrebare "Ce doriti sa serviti?")(raspuns ?r)))
)

;prima ramura a radacinii
(defrule q2
        (intrebare (stringIntrebare "Ce doriti sa serviti?")(raspuns 1))
        =>
        (printout t "Va recomandam un vin ROSU SEMIDULCE")
)

(defrule q3
        (intrebare (stringIntrebare "Ce doriti sa serviti?")(raspuns 2))
        =>
        (printout t "Va recomandam un vin ROZE." crlf)
)
(defrule q4
        (intrebare (stringIntrebare "Ce doriti sa serviti?")(raspuns 3))
        =>
        (printout t "Va recomandam un vin ROZE" crlf)
)
(defrule q5
        (intrebare (stringIntrebare "Ce doriti sa serviti?")(raspuns 4))
        =>
        (printout t "Va recomandam un vin ALB" crlf)
)

(defrule q6
        (intrebare (stringIntrebare "Ce doriti sa serviti?")(raspuns 5))
        =>
        (printout t "Va recomandam un vin ALB" crlf)
 )

(defrule q7
        (intrebare (stringIntrebare "Ce doriti sa serviti?")(raspuns 6))
        =>
        (printout t "Va recomandam un vin ROSU" crlf)
 )
(defrule q8
        (intrebare (stringIntrebare "Ce doriti sa serviti?")(raspuns 7))
        =>
        (printout t "Va recomandam un vin ROSU" crlf)
 )
(defrule q9
        (intrebare (stringIntrebare "Ce doriti sa serviti?")(raspuns 8))
        =>
        (printout t "Va recomandam un vin ROSU" crlf)
 )
 

(run)
(facts)